110 FOR X = 1 TO 11: READ P,D: & "BEEP",P,D *1.25: NEXT X: & "WAIT",1.5
120 DATA 47,5,0,5,37,15,0,5,47,5,0,10,63,5,0,5,37,15,0,5,31,7: REM " 1(C) 3(E) 1(C) 1(LO G) 3(E) 1(HI G)
150 PRINT M$:A$ = "AMPER-ARRAY IS DESIGNED TO PERFORM SOPHISTICATED MACHINE LANGUAGE OPERATIONS ON ARRAYS FROM WITHIN YOUR APPLESOFT BASIC PROGRAM.": & "PRT",A$: GOSUB 8400: & "WAIT",10
160 PRINT M$:A$ = "USING AMPER-ARRAY, YOU'LL BE ABLE TO PERFORM ALL THE ESSENTIALS OF DATA-BASE TYPE OPERATIONS (FAST READ/WRITE, SEARCH, SORT, AND MORE) WITH EASE.": & "PRT",A$: GOSUB 8400: & "WAIT",10
200 HOME : GOSUB 8600: HTAB 15: INVERSE : PRINT "AMPER ARRAY": NORMAL : PRINT M$:A$ = "IN ADDITION, YOU'LL BE ABLE TO PERFORM OPERATIONS ON ARRAYS THAT PREVIOUSLY WOULD HAVE BEEN IMPRACTICAL AT BEST IN BASIC.": & "PRT",A$: & "WAIT",10
210 PRINT M$:A$ = "MATRIX OPERATIONS, SCIENTIFIC FUNCTIONS, ARRAY MANIPULATIONS, AND MUCH MORE, CAN BE PERFORMED QUICKLY, ON AN ENTIRE ARRAY, WITH A SINGLE STATEMENT.": & "PRT",A$: GOSUB 8400: & "WAIT",9
220 R = 18:C = 3: FOR R1 = 1 TO R: FOR C1 = 1 TO C: READ A$(R1,C1): NEXT C1: NEXT R1
230 DATA "MIDDLETOWN","CONNECTICUT","89292","BERKELEY","CALIFORNIA","101922","SILVER SPRINGS","ARIZONA","3439","EL CERITO","CALIFORNIA","82299","NEW YORK","NEW YORK","9233822","SAN FRANCISCO","CALIFORNIA","633398","BOISE","OHIO","83320"
240 DATA "EL CAJON","CALIFORNIA","78233","LAST GASP","WYOMING","3","SAN DIEGO","CALIFORNIA","723909","SEATTLE","WASHINGTON","1222910","LEAVENWORTH","WASHINGTON","8239","HONOKAA","HAWAII","323","DUCK SPRINGS","UTAH","23"
250 DATA "WOODSTOCK","NEW YORK","627355","OGDENBURG","NEW YORK","10922","MELBOURNE","FLORIDA","532209","GRASS VALLEY","CALIFORNIA","2373"
300 HOME : GOSUB 8600: INVERSE : PRINT M$"ARRAY READ": NORMAL :A$ = "WILL READ A SEQUENTIAL TEXT FILE FROM DISK INTO A STRING OR REAL ARRAY.": & "PRT",A$: & "WAIT",6
310 PRINT M$:A$ = "THIS IS WHAT YOU HAVE TO DO WITH BASIC TO READ A TWO-DIMENSIONAL ARRAY:": & "PRT",A$: LIST 9010,9080: GOSUB 8500: & "WAIT",8
400 W = 24: GOSUB 8700: GOSUB 8600: INVERSE : PRINT M$"ARRAY SORT": NORMAL :A$ = "QUICKLY SORTS A STRING, REAL, OR INTEGER ARRAY USING THE SHELL-METZNER METHOD AND MULTIPLE KEY FIELDS IN EITHER ASCENDING OR DESCENDING ORDER.": & "PRT",A$: & "WAIT",10
410 PRINT M$:A$ = "LET'S SEE HOW QUICKLY WE CAN SORT A TWO-DIMENSION STRING ARRAY...": & "PRT",A$: GOSUB 8500: & "WAIT",6:W = 22: GOSUB 8700: VTAB 22: PRINT "HERE'S OUR ARRAY...";: GOSUB 8400: & "WAIT",2: GOSUB 9200: & "WAIT",10
500 W = 24: GOSUB 8700: GOSUB 8600: INVERSE : PRINT M$"MATRIX MATH": NORMAL :A$ = "CAN NOW BE DONE EASILY. AMPER-ARRAY HAS ROUTINES FOR MATRIX IDENTITY, MATRIX TRANSPOSE, MATRIX MULTIPLY, AND MATRIX INVERSE.": & "PRT",A$: & "WAIT",10
510 W = 14: GOSUB 8700: GOSUB 8500: INVERSE : PRINT M$"ARRAY DELIMITED STRINGS": NORMAL :A$ = "LET YOU TREAT A ONE-DIMENSIONAL STRING ARRAY AS AN ARRAY OF RECORDS, EACH CONTAINING SEVERAL FIELDS.": & "PRT",A$: & "WAIT",10
600 W = 24: GOSUB 8700: GOSUB 8600: INVERSE : PRINT M$"ROW/COLUMN ADD";: NORMAL : PRINT " & ";: INVERSE : PRINT "KILL": NORMAL
610 A$ = "WILL ADD OR DELETE ANY SPECIFIED ROW OR COLUMN IN A TWO-DIMENSIONAL REAL, INTEGER OR STRING ARRAY.": & "PRT",A$: & "WAIT",10
640 & "WINDOW",22,23: HOME :A$ = "NOW, LET'S PUT IT BACK IN...": & "PRT",A$;: GOSUB 8500: & "WAIT",2:X = 2:C1 = 2: & "ROW COL ADD",A$(X,C1):C = 3: GOSUB 9200: & "WAIT",8
650 & "WINDOW",22,23: HOME :A$ = "...SO WE CAN PUT SOME DATA IN IT.": & "PRT",A$;: GOSUB 8500: & "WAIT",2: FOR X = 1 TO 18: READ A$(X,2): NEXT X: GOSUB 9200: & "WAIT",8
660 & "WINDOW",1,24
670 DATA "FOUR","SCORE","AND","SEVEN","YEARS","AGO,","OUR","FATHERS","BROUGHT","FORTH","ON","THIS","CONTINENT","A NEW","NATION","CONCEIVED","IN","LIBERTY"
700 W = 24: GOSUB 8700: GOSUB 8600: INVERSE : PRINT M$"ARRAY REDIM": NORMAL :A$ = "WILL ALLOW YOU TO REDIMENSION A ONE- OR TWO-DIMENSIONAL INTEGER, STRING, OR REAL ARRAY, WITH LOSING ANY DATA!": & "PRT",A$: & "WAIT",10
710 W = 14: GOSUB 8700: GOSUB 8500: INVERSE : PRINT M$"GARBAGE MAN": NORMAL :A$ = "WILL PERFORM THE SAME 'HOUSECLEANING' FUNCTION AS APPLESOFT'S FRE(0) STATEMENT, BUT IT WILL DO IT QUICKLY!": & "PRT",A$: & "WAIT",8
720 PRINT :A$ = "THIS WILL KEEP APPLESOFT'S GARBAGE COLLECTION FROM SLOWING YOUR OTHERWISE FAST PROGRAM TO A SNAIL'S PACE!": & "PRT",A$: GOSUB 8400: & "WAIT",10
800 HOME : GOSUB 8600: HTAB 15: INVERSE : PRINT "AMPER ARRAY": NORMAL : PRINT M$:A$ = "ALL OF THE ROUTINES WILL WORK WITH TWO-DIMENSIONAL ARRAYS, AND IN MANY CASES WITH BOTH STRING AND NUMERIC DATA!": & "PRT",A$: & "WAIT",10
810 PRINT M$:A$ = "AMPER-ARRAY ALSO COMES WITH SEVERAL 'EXTRA' ROUTINES TO ROUND OUT THE PACKAGE, INCLUDING FAST RUN AND BRUN.": & "PRT",A$: GOSUB 8400: & "WAIT",10
900 HOME : GOSUB 8600: HTAB 15: INVERSE : PRINT "AMPER ARRAY": NORMAL : PRINT :A$ = "THE FOLLOWING ROUTINES ARE INCLUDED WITH 'AMPER ARRAY':": & "PRT",A$: PRINT : & "WAIT",5
910 FOR X = 1 TO 30:P = X -2 * INT((X -1)/2) -1: HTAB P *20 +1: READ A$: PRINT A$ MID$ ( CHR$(13),1,P = 1);: & "BEEP",15,1: NEXT X
920 & "WAIT",15: GOSUB 8400
930 GOTO 50
950 DATA "FAST DISK READ","ARRAY SEARCH","FAST DISK WRITE","ARRAY SORT","GARBAGE COLLECTOR","ARRAY CLEAR","ARRAY ROUNDING","ARRAY RENAME","ROW/COL ADD","ARRAY REDIM","ROW/COL DELETE","ARRAY DELETE","MATRIX IDENTITY","ARRAY RANDOM"